#ifndef MARKERJOB_H
#define MARKERJOB_H

#include "markerpath.h"
#include "markerparam.h"
#include "calibparam.h"

/**
 * @brief The MarkerJob class 工作任务
 */
class MarkerJob
{
public:

    static int ids;

    MarkerJob(bool loop = false) :
        mId(createId()), mLoopExcute(loop){

    }

    static int createId(){
        static int currentId = 0;
        return ++currentId;
    }

    int id() { return mId; }

    QList<MarkerPath> pathList() const { return mPathList; }

    void setPathList(const QList<MarkerPath> &pathList) { mPathList = pathList; }

    MarkerParam markerParam() const { return mMarkerParam; }

    void setMarkerParam(const MarkerParam &markerParam) { mMarkerParam = markerParam; }

    CalibParam calibParam() const { return mCalibParam; }

    void setCalibParam(const CalibParam &calibParam) { mCalibParam = calibParam; }

    bool isLoopExcute() { return mLoopExcute; }

    void setLoopExcute(bool loop){ mLoopExcute = loop; }
private:

    /**
     * @brief mId 工作任务id
     */
    int mId = 0;
    /**
     * @brief mPathList 标刻路径
     */
    QList<MarkerPath> mPathList;
    /**
     * @brief mMarkerParam 标刻参数
     */
    MarkerParam mMarkerParam;
    /**
     * @brief mCalibParam 校正参数,仅nv3k有效
     */
    CalibParam mCalibParam;
    /**
     * @brief mLoopExcute 是否循环打印
     */
    bool mLoopExcute;
};

#endif // MARKERJOB_H
